package br.com.mmsearch.beans;
// default package
// Generated 04/06/2013 00:03:37 by Hibernate Tools 4.0.0

import java.util.HashSet;
import java.util.Set;

import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import static javax.persistence.GenerationType.IDENTITY;
import javax.persistence.Id;
import javax.persistence.ManyToMany;
import javax.persistence.Table;

/**
 * Musica generated by hbm2java
 */
@SuppressWarnings("serial")
@Entity
@Table(name = "musica", catalog = "mmsearch")
public class Musica implements java.io.Serializable {

	private Integer idmusica;
	private String musica;
	private String escritores;
	private String realizadores;
	private String escritoresRealizadores;
	private Set<Filme> filmes = new HashSet<Filme>(0);

	public Musica() {
	}

	public Musica(String musica, String escritores, String realizadores,
			String escritoresRealizadores, Set<Filme> filmes) {
		this.musica = musica;
		this.escritores = escritores;
		this.realizadores = realizadores;
		this.escritoresRealizadores = escritoresRealizadores;
		this.filmes = filmes;
	}

	@Id
	@GeneratedValue(strategy = IDENTITY)
	@Column(name = "idmusica", unique = true, nullable = false)
	public Integer getIdmusica() {
		return this.idmusica;
	}

	public void setIdmusica(Integer idmusica) {
		this.idmusica = idmusica;
	}

	@Column(name = "musica", length = 100)
	public String getMusica() {
		return this.musica;
	}

	public void setMusica(String musica) {
		this.musica = musica;
	}

	@Column(name = "escritores", length = 200)
	public String getEscritores() {
		return this.escritores;
	}

	public void setEscritores(String escritores) {
		this.escritores = escritores;
	}

	@Column(name = "realizadores", length = 200)
	public String getRealizadores() {
		return this.realizadores;
	}

	public void setRealizadores(String realizadores) {
		this.realizadores = realizadores;
	}

	@Column(name = "escritoresRealizadores", length = 200)
	public String getEscritoresRealizadores() {
		return this.escritoresRealizadores;
	}

	public void setEscritoresRealizadores(String escritoresRealizadores) {
		this.escritoresRealizadores = escritoresRealizadores;
	}

	@ManyToMany(fetch = FetchType.LAZY, mappedBy = "musicas", cascade = CascadeType.ALL)
	public Set<Filme> getFilmes() {
		return this.filmes;
	}

	public void setFilmes(Set<Filme> filmes) {
		this.filmes = filmes;
	}

	@Override
	public int hashCode() {
		final int prime = 31;
		int result = 1;
		result = prime * result
				+ ((escritores == null) ? 0 : escritores.hashCode());
		result = prime
				* result
				+ ((escritoresRealizadores == null) ? 0
						: escritoresRealizadores.hashCode());
		result = prime * result + ((musica == null) ? 0 : musica.hashCode());
		result = prime * result
				+ ((realizadores == null) ? 0 : realizadores.hashCode());
		return result;
	}

	@Override
	public boolean equals(Object obj) {
		if (this == obj)
			return true;
		if (obj == null)
			return false;
		if (getClass() != obj.getClass())
			return false;
		Musica other = (Musica) obj;
		if (escritores == null) {
			if (other.escritores != null)
				return false;
		} else if (!escritores.equals(other.escritores))
			return false;
		if (escritoresRealizadores == null) {
			if (other.escritoresRealizadores != null)
				return false;
		} else if (!escritoresRealizadores.equals(other.escritoresRealizadores))
			return false;
		if (musica == null) {
			if (other.musica != null)
				return false;
		} else if (!musica.equals(other.musica))
			return false;
		if (realizadores == null) {
			if (other.realizadores != null)
				return false;
		} else if (!realizadores.equals(other.realizadores))
			return false;
		return true;
	}

	@Override
	public String toString() {
		return "Musica [idmusica=" + idmusica + ", musica=" + musica
				+ ", escritores=" + escritores + ", realizadores="
				+ realizadores + ", escritoresRealizadores="
				+ escritoresRealizadores + "]";
	}
}
